home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Enigma Amiga Life 109
/
EnigmaAmiga109CD.iso
/
dalla rivista
/
host contacted
/
imengv3.41p2.lha
/
ImEngV3.41p2
/
Extra
/
DOpus5
/
arexx
/
IE_Convert.dopus5
< prev
next >
Wrap
Text File
|
1996-08-18
|
6KB
|
203 lines
/*
** $VER: IE_Convert.dopus5 1.1 (17/8 Stockholm/Sweden)
** Copyright © 1996 by Patrik M Nydensten
**
** Converts all selected image files in the SRCE directory and
** saves them into DEST directory.
** Requires Image Engineer 3.0 or higher and DOpus 5.0 or higher.
** Call: (AREXX) DOpus5:arexx/IE_Convert.dopus5 {Qp}
*/
CFG_PALETTE_DIR = '"IE:Palettes/"'
options results
signal on syntax
lf='0a'x
parse arg portname
if left(portname,5)='DOPUS' then address value portname
else exit
if ~show(ports,'IMAGEENGINEER') then do
dopus request '"Could not locate IEs arexx port!" OK'
exit
end
/* Get info from DOpus */
lister query source /* get source handler */
parse var result handle nil
if RC~= 0 then exit
lister query dest /* get destination handler */
parse var result dhandle nil
if RC~= 0 then do
dopus request '"No DEST directory selected!" OK'
exit
end
lister query handle path /* get current source path */
src_path = strip(result,B,'"')
lister query dhandle path /* get current dest path */
dst_path = strip(result,B,'"')
lister query handle selfiles ':' /* get selected file names */
sel_files = result
lister query handle numselfiles /* get number of selected files */
num_files = result
if num_files = 0 then exit
/* Get info from IE */
address 'IMAGEENGINEER'
IE_TO_FRONT
'GET_FILE_TYPE "Select destination file format."'
if RC~= 0 then do
address value portname
dopus front
dopus request '"User did not select file type!" OK'
exit
end
else FileType = result
'REQUEST' '"Would you like to save rendered or 24bit image?"' '" Render | 24bit "'
do_render = result
if do_render = 1 then do /* get render info */
'RENDER_GET "Set render options."'
if RC~= 0 then do
address value portname
dopus front
dopus request '"User did not select render options!" OK'
exit
end
else RenderOptions = result
if word(RenderOptions,5) = 0 then do /* let user pick lock-palette */
'GET_FILE "Select a palette to lock." "Lock"' CFG_PALETTE_DIR
if RC~= 0 then do
address value portname
dopus front
dopus request '"User did not select lock-palette!" OK'
exit
end
else do_palette = result
end /* end of pick lock-palette */
end /* end of get render info */
/* Start process */
address value portname
dopus front
lister set handle progress num_files 'Converting images...'
do i = 1 to num_files /* convert loop */
address value portname
parse var sel_files image_file ':' sel_files
image_file = strip(image_file,B,'"')
lister set handle progress name image_file /* update progress display */
lister query handle abort /* check if aborted */
if result then do
lister clear handle progress /* exit progress display mode */
lister refresh handle 'full'
lister refresh dhandle 'full'
lister read dhandle '"'||dst_path||'"' force
dopus front
dopus request '"User aborted..." OK'
lister clear handle abort
exit
end
nil = convert(image_file)
address value portname
lister set handle progress count i /* update progress display */
lister refresh handle full /* update lister display */
end /* end of load loop */
lister clear handle progress /* exits progress display mode */
lister refresh handle 'full' /* update source */
lister refresh dhandle 'full' /* update dest */
lister read dhandle '"'||dst_path||'"' force
dopus front
exit
Convert:
parse arg file
address 'IMAGEENGINEER'
file_ext = '.'||word(strip(filetype),1)
'OPEN "'||src_path||file||'" 24'
if (RC ~= 0) then do
address value portname
dopus request '"Error when loading image' file '!" OK'
end
else do
Project = result
if do_render = 1 then do /* render image */
if do_palette~='DO_PALETTE' then do
'PALETTE_LOAD' Project '"'do_palette'"'
if (RC ~= 0) then do
address value portname
dopus request '"Error when loading lock-palette:'||lf||do_palette||lf||'Processing image anyway." OK'
address 'IMAGEENGINEER'
end
end
'RENDER_SET' Project RenderOptions
'RENDER' Project 'QUIET'
'SAVE' Project '"'||dst_path||file||file_ext||'"' '"'||filetype||'"'
if (RC ~= 0) then do
address value portname
dopus request '"Error when saving image' file '!" OK'
address 'IMAGEENGINEER'
end
else do
address value portname
lister select handle '"'||image_file||'"' off
end
end
else do /* do not render image */
'SAVE_DATA' Project '"'||dst_path||file||file_ext||'"' '"'||filetype||'"'
if (RC ~= 0) then do
address value portname
dopus request '"Error when saving image' file '!" OK'
address 'IMAGEENGINEER'
end
else do
address value portname
lister select handle '"'||image_file||'"' off
end
end
address 'IMAGEENGINEER'
'CLOSE' Project
end
return nil
Syntax:
syntax_rc = rc
lister clear handle progress /* exits progress display mode */
lister refresh handle 'full' /* update source */
lister refresh dhandle 'full' /* update dest */
lister read dhandle '"'||dst_path||'"' force
dopus front
dopus request '"Internal error on line' SIGL || lf || 'Error:' syntax_rc errortext(syntax_rc) '" OK'
exit
return 0